package com.ttg.common.aa;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author ZQ
 * @Description
 * @date 2020/12/16 9:42
 * @version 1.0
 */
@Data
@JsonInclude(value = JsonInclude.Include.NON_NULL)
@TableName(value = "tbl_order_index")
public class OrderIndex {
    /**
     * 订单主键编号
     */
    @TableId(value = "ord_id", type = IdType.INPUT)
    private Long ordId;

    /**
     * 订单号
     */
    @TableField(value = "ord_no")
    private String ordNo;

    /**
     * 订单归属日期
     */
    @TableField(value = "ord_date")
    private Integer ordDate;

    /**
     * 交易类型（1消费，2退款，3充值，4预授权，5预授权取消 6预授权完成）
     */
    @TableField(value = "ord_type")
    private Integer ordType;

    /**
     * 支付场景（0现金，1刷卡，2商家扫用户手机，3用户扫商家生成的二维码，4JSPAY公从号，5HTML5付款，6APP支付）
     */
    @TableField(value = "ord_trade_type")
    private Integer ordTradeType;

    /**
     * 订单状态（1交易成功，2待支付，9待输入密码，4已取消）
     */
    @TableField(value = "ord_status")
    private Integer ordStatus;

    /**
     * 清算方式（0=D0、T0，1=D1、T1）
     */
    @TableField(value = "ord_pay_type")
    private Integer ordPayType;

    /**
     * 交易场景 1-分账订单，2-合单子订单，0或者null为普通订单
     */
    @TableField(value = "ord_trade_scene")
    private Integer ordTradeScene;

    /**
     * 实际交易金额（分）
     */
    @TableField(value = "ord_trade_amount")
    private BigDecimal ordTradeAmount;

    /**
     * 商户手续费T1
     */
    @TableField(value = "ord_fee")
    private BigDecimal ordFee;

    /**
     * 商户手续费D0
     */
    @TableField(value = "ord_day_fee")
    private BigDecimal ordDayFee;

    /**
     * 付款成功时间
     */
    @TableField(value = "ord_trade_pay_time")
    private LocalDateTime ordTradePayTime;

    /**
     * 下单时间
     */
    @TableField(value = "ord_add_time")
    private LocalDateTime ordAddTime;

    /**
     * 运营平台编号
     */
    @TableField(value = "ord_org_no")
    private Long ordOrgNo;

    /**
     * 机构编号
     */
    @TableField(value = "ord_agent_no")
    private Long ordAgentNo;

    /**
     * 商户编号
     */
    @TableField(value = "ord_mct_no")
    private Long ordMctNo;

    /**
     * 门店编号
     */
    @TableField(value = "ord_shop_no")
    private Long ordShopNo;

    /**
     * 终端号
     */
    @TableField(value = "ord_tml_no")
    private Long ordTmlNo;

    /**
     * 收银员编号
     */
    @TableField(value = "ord_scr_id")
    private Long ordScrId;

    /**
     * 二维码收款编号
     */
    @TableField(value = "ord_qrc_id")
    private Long ordQrcId;

    /**
     * 一级机构编号
     */
    @TableField(value = "ord_agent_no1")
    private Long ordAgentNo1;

    /**
     * 二级机构编号
     */
    @TableField(value = "ord_agent_no2")
    private Long ordAgentNo2;

    /**
     * 三级机构编号
     */
    @TableField(value = "ord_agent_no3")
    private Long ordAgentNo3;

    /**
     * 四级机构编号
     */
    @TableField(value = "ord_agent_no4")
    private Long ordAgentNo4;

    /**
     * 五级机构编号
     */
    @TableField(value = "ord_agent_no5")
    private Long ordAgentNo5;

    /**
     * 付款方式编号
     */
    @TableField(value = "ord_pmt_id")
    private Long ordPmtId;

    /**
     * 付款方式名称
     */
    @TableField(value = "ord_pmt_name")
    private String ordPmtName;

    /**
     * 币种代码
     */
    @TableField(value = "ord_currency")
    private String ordCurrency;

    /**
     * 是否信用卡交易（1是，0不是，如果是刷卡交易[6本行借记卡,7本行贷记卡,8他行借记卡,9他行贷记卡]）
     */
    @TableField(value = "ord_credit_card")
    private Integer ordCreditCard;

    /**
     * 对账检查(0未查询，1查询成功，2查询失败，4对账异常（未纠正），5对帐异常（已纠正），6对帐成功
     */
    @TableField(value = "ord_check")
    private Integer ordCheck;

    /**
     * 对账日期（交易确认打款日期）
     */
    @TableField(value = "ord_check_date")
    private LocalDate ordCheckDate;

    /**
     * 清算批次号
     */
    @TableField(value = "ord_obl_id")
    private Long ordOblId;

    /**
     * 清算状态（0待确认，1入账成功，2转T+1，3转下一次，4入账失败，6清算完成）
     */
    @TableField(value = "ord_obd_status")
    private Integer ordObdStatus;

    /**
     * 订单更新时间
     */
    @TableField(value = "ord_upd_time")
    private LocalDateTime ordUpdTime;

    /**
     * 交易号（接口方）
     */
    @TableField(value = "ord_trade_no")
    private String ordTradeNo;

    /**
     * 交易号2
     */
    @TableField(value = "ord_trade_no2")
    private String ordTradeNo2;

    /**
     * 开发者流水号（唯一）
     */
    @TableField(value = "ord_out_no")
    private String ordOutNo;

    /**
     * 原始订单号（退款订单的原始订单号）
     */
    @TableField(value = "ord_original_ord_no")
    private String ordOriginalOrdNo;

    /**
     * 原始金额
     */
    @TableField(value = "ord_original_amount")
    private BigDecimal ordOriginalAmount;

    /**
     * 不打拆金额
     */
    @TableField(value = "ord_no_discount_amount")
    private BigDecimal ordNoDiscountAmount;

    /**
     * 折扣金额
     */
    @TableField(value = "ord_discount_amount")
    private BigDecimal ordDiscountAmount;

    /**
     * 抹零金额
     */
    @TableField(value = "ord_ignore_amount")
    private BigDecimal ordIgnoreAmount;

    /**
     * 交易优惠金额（免充值券）
     */
    @TableField(value = "ord_trade_discout_amount")
    private BigDecimal ordTradeDiscoutAmount;

    /**
     * 收单合同编号
     */
    @TableField(value = "ord_ctt_id")
    private Long ordCttId;

    /**
     * 渠道成本手续费T1
     */
    @TableField(value = "ord_cost_fee")
    private BigDecimal ordCostFee;

    /**
     * 总控佣金T1
     */
    @TableField(value = "ord_ttg_fee")
    private BigDecimal ordTtgFee;

    /**
     * 运营平台佣金T1
     */
    @TableField(value = "ord_org_fee")
    private BigDecimal ordOrgFee;

    /**
     * 机构代理佣金
     */
    @TableField(value = "ord_agent_fee")
    private BigDecimal ordAgentFee;

    /**
     * 一级机构分润T1
     */
    @TableField(value = "ord_agent_fee1")
    private BigDecimal ordAgentFee1;

    /**
     * 二级机构分润T1
     */
    @TableField(value = "ord_agent_fee2")
    private BigDecimal ordAgentFee2;

    /**
     * 三级机构分润T1
     */
    @TableField(value = "ord_agent_fee3")
    private BigDecimal ordAgentFee3;

    /**
     * 四级机构分润T1
     */
    @TableField(value = "ord_agent_fee4")
    private BigDecimal ordAgentFee4;

    /**
     * 五级机构分润T1
     */
    @TableField(value = "ord_agent_fee5")
    private BigDecimal ordAgentFee5;

    /**
     * 渠道手续费D0
     */
    @TableField(value = "ord_day_cost_fee")
    private BigDecimal ordDayCostFee;

    /**
     * 总控分佣D0
     */
    @TableField(value = "ord_day_ttg_fee")
    private BigDecimal ordDayTtgFee;

    /**
     * 平台分佣D0
     */
    @TableField(value = "ord_day_org_fee")
    private BigDecimal ordDayOrgFee;

    /**
     * 一级机构分佣D0
     */
    @TableField(value = "ord_day_fee1")
    private BigDecimal ordDayFee1;

    /**
     * 二级机构分佣D0
     */
    @TableField(value = "ord_day_fee2")
    private BigDecimal ordDayFee2;

    /**
     * 三级机构分佣D0
     */
    @TableField(value = "ord_day_fee3")
    private BigDecimal ordDayFee3;

    /**
     * 四级机构分佣D0
     */
    @TableField(value = "ord_day_fee4")
    private BigDecimal ordDayFee4;

    /**
     * 五级机构分佣D0
     */
    @TableField(value = "ord_day_fee5")
    private BigDecimal ordDayFee5;

    /**
     * 订单描述
     */
    @TableField(value = "ord_name")
    private String ordName;

    /**
     * 用户支付帐号
     */
    @TableField(value = "ord_trade_account")
    private String ordTradeAccount;

    /**
     * 备注
     */
    @TableField(value = "ord_remark")
    private String ordRemark;

    /**
     * 交易自定义代码（刷卡对账用）
     */
    @TableField(value = "ord_trade_code")
    private String ordTradeCode;

    /**
     * 请求接口时间
     */
    @TableField(value = "ord_trade_time")
    private LocalDateTime ordTradeTime;

    /**
     * 订单关联应用数量
     */
    @TableField(value = "ord_apps")
    private Integer ordApps;

    /**
     * 渠道成本扣率T1
     */
    @TableField(value = "ord_cost_ratio")
    private BigDecimal ordCostRatio;

    /**
     * 商户扣率T1
     */
    @TableField(value = "ord_mct_ratio")
    private BigDecimal ordMctRatio;

    /**
     * 渠道成本扣率D0
     */
    @TableField(value = "ord_day_cost_ratio")
    private BigDecimal ordDayCostRatio;

    /**
     * 商户扣率D0
     */
    @TableField(value = "ord_day_ratio")
    private BigDecimal ordDayRatio;

    /**
     * 总控的成本扣率T1
     */
    @TableField(value = "ord_ttg_ratio")
    private BigDecimal ordTtgRatio;

    /**
     * 对帐扣率
     */
    @TableField(value = "ord_check_fee")
    private BigDecimal ordCheckFee;

    @TableField(exist = false)
    private BigDecimal totalOrderAmount;

    /**
     * 商户头寸
     */
    @TableField(exist = false)
    private BigDecimal mctPosition;

    @TableField(exist = false)
    private Integer sDate;

    @TableField(exist = false)
    private Integer eDate;

    @TableField(exist = false)
    private List<Long> mctNos;

    @TableField(exist = false)
    private List<Long> shopNos;

    @TableField(exist = false)
    private LocalDateTime sDateTime;

    @TableField(exist = false)
    private LocalDateTime eDateTime;

}